From 0e8d35f92efb680c81f6ec1fca9f11d173dce389 Mon Sep 17 00:00:00 2001
From: Guido Draheim <guidod@gmx.de>
Date: Sat, 22 May 2021 15:13:28 +0200
Subject: [PATCH] #117 implant ZZIP_LIBLATEST for zzip.lib

[Andreas: Extract link creation for versioned libraries from commit
0e8d35f92efb680c81f6ec1fca9f11d173dce389.]
Signed-off-by: Andreas Ziegler <br015@umbiko.net>
---
 zzip/CMakeLists.txt | 57 +++++++++++++++++++++++++++++++++++----------
 1 file changed, 45 insertions(+), 12 deletions(-)

diff --git a/zzip/CMakeLists.txt b/zzip/CMakeLists.txt
index a966d5f..ccd08b6 100644
--- a/zzip/CMakeLists.txt
+++ b/zzip/CMakeLists.txt
@@ -28,6 +28,12 @@ option(ZZIP_LIBTOOL "Ensure binary compatibility with libtool" OFF)
 option(ZZIP_PKGCONFIG "Generate pkg-config files for linking" OFF)
 endif()
 
+if(ZZIP_LIBTOOL OR ZZIP_PKGCONFIG)
+option(ZZIP_LIBLATEST "Ensure libname.lib links to libname-REL.lib" ON)
+else()
+option(ZZIP_LIBLATEST "Ensure libname.lib links to libname-REL.lib" OFF)
+endif()
+
 # used in zzip/_config.h
 set(ZZIP_PACKAGE "${PROJECT_NAME}lib")
 set(ZZIP_VERSION "${PROJECT_VERSION}")
@@ -346,6 +340,45 @@ if(ZZIP_LIBTOOL)
   endif(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG)
 endif(ZZIP_LIBTOOL)
 
+if(ZZIP_LIBLATEST)
+  if(BUILD_SHARED_LIBS)
+    set(lib ${CMAKE_SHARED_LIBRARY_PREFIX})
+    set(dll ${CMAKE_SHARED_LIBRARY_SUFFIX})
+  else()
+    set(lib ${CMAKE_STATIC_LIBRARY_PREFIX})
+    set(dll ${CMAKE_STATIC_LIBRARY_SUFFIX})
+  endif()
+    get_target_property(libname libzzip OUTPUT_NAME)
+    get_target_property(librelease libzzip RELEASE_POSTFIX)
+    add_custom_target(libzzip_latest ALL
+        COMMAND ${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE_NAME:libzzip> ${lib}${libname}${dll}
+        )
+    install(FILES
+        ${outdir}/${lib}${libname}${dll}
+        DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    if(ZZIPFSEEKO)
+    get_target_property(libname libzzipfseeko OUTPUT_NAME)
+    get_target_property(librelease libzzipfseeko RELEASE_POSTFIX)
+    add_custom_target(libzzipfseeko_latest ALL
+        COMMAND ${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE_NAME:libzzipfseeko> ${lib}${libname}${dll}
+        )
+    install(FILES
+        ${outdir}/${lib}${libname}${dll}
+        DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    endif(ZZIPFSEEKO)
+    if(ZZIPMMAPPED)
+    get_target_property(libname libzzipmmapped OUTPUT_NAME)
+    get_target_property(librelease libzzipmmapped RELEASE_POSTFIX)
+    add_custom_target(libzzipmmaped_latest ALL
+        COMMAND ${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE_NAME:libzzipmmapped> ${lib}${libname}${dll}
+        )
+    install(FILES
+        ${outdir}/${lib}${libname}${dll}
+        DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    endif(ZZIPMMAPPED)
+endif(ZZIP_LIBLATEST)
+
+
 ## messages ##############################################
 
 message(STATUS "lib zzipfseeko  to be compiled: ${ZZIPFSEEKO}")
